﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SacNetUG.Models;

namespace SacNetUG.Controllers
{
    public partial class TeamController : Controller
    {
        //public ActionResult Create()
        //{
        //    ViewData.Add("userList", GetPaginatedUserList(1));
        //    ViewData.Add("wfStep", 1);
        //    return View();
        //}

        //[AcceptVerbs(HttpVerbs.Post)]
        //public ActionResult Create(int id, TeamViewModel tvm)
        //{
        //    var db = new SacNetUGDataContext();
        //    TeamMember teamMember = tvm.TeamMember;
        //    teamMember.IsCurrent = true;
        //    teamMember.UserId = id;
        //    User user = db.GetTable<User>().Where(x => x.Id == id).First<User>();
        //    db.TeamMembers.InsertOnSubmit(teamMember);
        //    user.Bio = tvm.User.Bio;



        //    db.SubmitChanges();

        //    return RedirectToAction("Index");
        //}

        //public ActionResult UserPartialFields(int id)
        //{
        //    var db = new SacNetUGRepository();
        //    User user = db.GetUser(id);
        //    TeamViewModel tvm = new TeamViewModel();
        //    tvm.User = user;
        //    tvm.TeamMember = new TeamMember();
        //    return PartialView("UserTeamFields", tvm);
        //}

        //[AcceptVerbs(HttpVerbs.Post)]
        //public ActionResult WfHandler(int? newUserId, string cancelButton, string nextButton, string backButton, FormCollection formCollection)
        //{
        //    //Need to track the following data items:
        //    //User Id, Bio, Title, Image URL (or other depending on how we decide to persist), wfStep
        //    if (!string.IsNullOrEmpty((cancelButton)))
        //    {
        //        //cancel create action
        //    }

        //    int userId = 0;
        //    int wfStep = 0;
        //    if (newUserId.HasValue)
        //    {
        //        //We are on wf step 2
        //        userId = newUserId.Value;
        //        wfStep = 2;
        //    }
        //    else
        //    {
        //        userId = int.Parse(GetDictValue(TempData, "userId", "0"));
        //        wfStep = int.Parse(formCollection["wfStepValue"]);
        //        if (!string.IsNullOrEmpty((nextButton)))
        //            wfStep++;
        //        if (!string.IsNullOrEmpty((backButton)))
        //            wfStep--;
        //    }

        //    //int userId = int.Parse(GetDictValue(TempData, "userId", "0"));
        //    string bio = GetDictValue(TempData, "bio");
        //    string title = GetDictValue(TempData, "title");
        //    string imageUrl = GetDictValue(TempData, "imageUrl");
        //    string firstName = GetDictValue(TempData, "firstName");
        //    string lastName = GetDictValue(TempData, "lastName");

        //    //Overwrite with values from formcollection
        //    //wfStep = int.Parse(GetDictValue(ViewData, "wfStep", wfStep.ToString()));
        //    //userId = int.Parse(GetDictValue(ViewData, "userId", userId.ToString()));
        //    bio = GetDictValue(formCollection, "memberBio", bio);
        //    title = GetDictValue(formCollection, "TeamMember.Title", title);
        //    imageUrl = GetDictValue(formCollection, "TeamMember.ImageUrl", imageUrl);

        //    //Clear tempdata and push values back to both tempdata and viewdata
        //    TempData.Clear();
        //    //TempData.Add("wfStep", wfStep);
        //    TempData.Add("userId", userId);
        //    TempData.Add("bio", bio);
        //    TempData.Add("title", title);
        //    TempData.Add("imageUrl", imageUrl);

        //    ViewData.Add("wfStep", wfStep);
        //    ViewData.Add("userId", userId);
        //    ViewData.Add("bio", bio);
        //    ViewData.Add("title", title);
        //    ViewData.Add("imageUrl", imageUrl);

        //    //Load any needed models
        //    var db = new SacNetUGRepository();
        //    switch (wfStep)
        //    {
        //        case 1: //Won't happen
        //            break;

        //        case 2:
        //            //Show team/user fields

        //            User user = db.GetUser(userId);
        //            TeamViewModel tvm = new TeamViewModel();
        //            tvm.User = user;
        //            tvm.TeamMember = new TeamMember();
        //            //ViewData["teamUserFields"] = tvm;
        //            ViewData.Add("teamUserFields", tvm);
        //            TempData.Add("firstName", user.FirstName);
        //            TempData.Add("lastName", user.LastName);
        //            ViewData.Add("firstName", user.FirstName);
        //            ViewData.Add("lastName", user.LastName);

        //            break;

        //        case 3:
        //            //Show preview
        //            ViewData.Add("firstName", firstName);
        //            ViewData.Add("lastName", lastName);
        //            TempData.Add("firstName", firstName);
        //            TempData.Add("lastName", lastName);


        //            break;

        //    }


        //    //int userId = new int();
        //    //if (TempData.ContainsKey("userId"))
        //    //    userId = int.Parse(TempData["useId"]);
        //    //else
        //    //    userId = 0;


        //    //ViewData["bio"] = TempData["bio"] ?? "";
        //    //ViewData["title"] = TempData["title"] ?? "";
        //    //ViewData["imageUrl"] = TempData["imageUrl"] ?? 0;

        //    //ViewData["userId"] = TempData["userId"] ?? 0;
        //    //ViewData["bio"] = TempData["bio"] ?? "";
        //    //ViewData["title"] = TempData["title"] ?? "";
        //    //ViewData["imageUrl"] = TempData["imageUrl"] ?? 0;
        //    return PartialView("WfPartial");

        //}

        ////Don't like this - may look for a generic solution here
        //private string GetDictValue(FormCollection collection, string key)
        //{

        //    return GetDictValue(collection, key, "");
        //}

        //private string GetDictValue(FormCollection collection, string key, string defaultValue)
        //{
        //    if (collection[key] != null)
        //    {
        //        return collection[key].ToString();
        //    }
        //    else
        //    {
        //        return defaultValue;
        //    }
        //}

        //private string GetDictValue(TempDataDictionary dictionary, string key)
        //{
        //    return GetDictValue(dictionary, key, "");
        //}

        //private string GetDictValue(TempDataDictionary dictionary, string key, string defaultValue)
        //{
        //    if (dictionary.ContainsKey(key))
        //    {
        //        return dictionary[key].ToString();
        //    }
        //    else
        //    {
        //        return defaultValue;
        //    }

        //}

        //public ActionResult AjaxUserList(int? page)
        //{
        //    return PartialView("UserList", GetPaginatedUserList(page ?? 1));

        //}

        //private PaginatedList<TempUserView> GetPaginatedUserList(int page)
        //{
        //    //TODO: Parameterize pageSize
        //    const int pageSize = 25;
        //    //var persons = infoSysRepository.FindAllPersons().ToList();
        //    var db = new SacNetUGDataContext();
        //    //var paginatedPersons = personsSummary.Skip((page - 1) * pageSize).Take(pageSize).ToList();
        //    var paginatedList = new PaginatedList<TempUserView>(db.GetTable<TempUserView>(), page, pageSize);
        //    return paginatedList;

        //}

    }
}
